home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Almathera Ten Pack 3: CDPD 3
/
Almathera Ten on Ten - Disc 3: CDPD3.iso
/
fish
/
676-700
/
682
/
rexxhostlib
/
rexxhostbase.h
< prev
next >
Wrap
C/C++ Source or Header
|
1995-03-18
|
5KB
|
162 lines
/*
** rexxhost.library - ARexx host management support library
**
** Copyright © 1990-1992 by Olaf `Olsen' Barthel
** All Rights Reserved
*/
#ifndef _REXXHOSTBASE_H
#define _REXXHOSTBASE_H 1
#ifndef REXX_RXSLIB_H
#include <rexx/rxslib.h>
#endif /* !REXX_RXSLIB_H */
/* Main library structure (note: RexxSysBase can be reused
* by opening program).
*/
struct RexxHostBase
{
struct Library LibNode;
struct RxsLib *RexxSysBase;
/* Everything below this point is considered PRIVATE and
* subject to change without notice (even though there isn't
* very much yet).
*/
};
/* This is an extended MsgPort structure which includes
* a special ID CreateRexxHost/DeleteRexxHost/SendRexxCommand
* rely on.
*/
struct RexxHost
{
/* Exec link. */
struct MsgPort rh_Port;
/* Never touch the tags below, hands off - this may change soon. */
ULONG rh_Private0;
ULONG rh_Private1[4];
};
/* This macro can be used to turn the signal bit
* contained in a RexxHost into a Wait-mask.
* Note: Argument must be a pointer.
*/
#define HOSTMASK(Host) (1L << ((struct RexxHost *)Host) -> rh_Port . mp_SigBit)
/* The library name. */
#define REXXHOSTNAME "rexxhost.library"
/* Use this value rather than REXXHOSTVERSION to open
* rexxhost.library.
*/
#define REXXHOSTMINIMUM 34L
/* The compiler version differences require the
* following preprocessor 'orgy'.
*/
#ifdef __NO_PROTOS
#undef __NO_PROTOS
#endif /* __NO_PROTOS */
#ifdef AZTEC_C
/* No version symbol? We'll redefine it. */
#ifndef __VERSION
#define __VERSION 360
#endif /* __VERSION */
/* Aztec 'C' 5.0 includes full prototype checking and
* pragma support.
*/
#if __VERSION < 500
#define __NO_PROTOS 1
#define __NO_PRAGMAS 1
#endif /* __VERSION */
#endif /* AZTEC_C */
/* Now for the prototype handling. */
#ifdef __NO_PROTOS
#define __ARGS(x) ()
#else
#define __ARGS(x) x
#endif /* __NO_PROTOS */
/* Prototypes for library functions. */
struct RexxHost * CreateRexxHost __ARGS((STRPTR));
VOID * DeleteRexxHost __ARGS((struct RexxHost *));
LONG SendRexxCommand __ARGS((struct RexxHost *,STRPTR,STRPTR,STRPTR));
VOID FreeRexxCommand __ARGS((struct RexxMsg *));
VOID ReplyRexxCommand __ARGS((struct RexxMsg *,LONG,LONG,STRPTR));
STRPTR GetRexxCommand __ARGS((struct RexxMsg *));
STRPTR GetRexxArg __ARGS((struct RexxMsg *));
LONG GetRexxResult1 __ARGS((struct RexxMsg *));
LONG GetRexxResult2 __ARGS((struct RexxMsg *));
STRPTR GetToken __ARGS((STRPTR,LONG *,STRPTR,LONG));
LONG GetStringValue __ARGS((STRPTR));
STRPTR BuildValueString __ARGS((LONG,STRPTR));
LONG RexxStrCmp __ARGS((UBYTE *,UBYTE *));
struct RexxMsg * GetRexxMsg __ARGS((struct RexxHost *,LONG));
ULONG SendRexxMsg __ARGS((STRPTR,STRPTR *,STRPTR,LONG));
VOID GetRexxString __ARGS((STRPTR,STRPTR));
LONG GetRexxClip __ARGS((char *Name,LONG WhichArg));
/* The pragmas, both for Manx & Lattice. */
#ifndef __NO_PRAGMAS
#ifdef AZTEC_C
#pragma amicall(RexxHostBase, 0x1e, CreateRexxHost(a0))
#pragma amicall(RexxHostBase, 0x24, DeleteRexxHost(a0))
#pragma amicall(RexxHostBase, 0x2a, SendRexxCommand(a0,a1,a2,a3))
#pragma amicall(RexxHostBase, 0x30, FreeRexxCommand(a0))
#pragma amicall(RexxHostBase, 0x36, ReplyRexxCommand(a0,d0,d1,a1))
#pragma amicall(RexxHostBase, 0x3c, GetRexxCommand(a0))
#pragma amicall(RexxHostBase, 0x42, GetRexxArg(a0))
#pragma amicall(RexxHostBase, 0x48, GetRexxResult1(a0))
#pragma amicall(RexxHostBase, 0x4e, GetRexxResult2(a0))
#pragma amicall(RexxHostBase, 0x54, GetToken(a0,a1,a2,d0))
#pragma amicall(RexxHostBase, 0x5a, GetStringValue(a0))
#pragma amicall(RexxHostBase, 0x60, BuildValueString(d0,a0))
#pragma amicall(RexxHostBase, 0x66, RexxStrCmp(a0,a1))
#pragma amicall(RexxHostBase, 0x6c, GetRexxMsg(a0,d0))
#pragma amicall(RexxHostBase, 0x72, SendRexxMsg(a0,a1,a2,d0))
#pragma amicall(RexxHostBase, 0x78, GetRexxString(d0,d1))
#pragma amicall(RexxHostBase, 0x7e, GetRexxClip(a0,d0))
#else /* AZTEC_C */
#pragma libcall RexxHostBase CreateRexxHost 1e 801
#pragma libcall RexxHostBase DeleteRexxHost 24 801
#pragma libcall RexxHostBase SendRexxCommand 2a ba9804
#pragma libcall RexxHostBase FreeRexxCommand 30 801
#pragma libcall RexxHostBase ReplyRexxCommand 36 910804
#pragma libcall RexxHostBase GetRexxCommand 3c 801
#pragma libcall RexxHostBase GetRexxArg 42 801
#pragma libcall RexxHostBase GetRexxResult1 48 801
#pragma libcall RexxHostBase GetRexxResult2 4e 801
#pragma libcall RexxHostBase GetToken 54 a9804
#pragma libcall RexxHostBase GetStringValue 5a 801
#pragma libcall RexxHostBase BuildValueString 60 8002
#pragma libcall RexxHostBase RexxStrCmp 66 9802
#pragma libcall RexxHostBase GetRexxMsg 6c 802
#pragma libcall RexxHostBase SendRexxMsg 72 a9804
#pragma libcall RexxHostBase GetRexxString 78 1002
#pragma libcall RexxHostBase GetRexxClip 7e 802
#endif /* AZTEC_C */
#endif /* __NO_PRAGMAS */
#endif /* _REXXHOSTBASE_H */